import { computed } from 'vue'
import { usePagination } from 'vue-request'

/**
 * 分页
 * @param {请求方法} apiRequestMethod
 * @returns
 */
export default function (apiRequestMethod) {
  // 分页查询数据
  const {
    data, loading, refresh, run
    , current, total, pageSize
    , changePagination
  } = usePagination(apiRequestMethod, {
    defaultParams: [],
    pagination: {
      currentKey: 'page', // 请求当前页别名
      pageSizeKey: 'pageSize', // 请求当前页别名
      // 响应数据分页参数KEY
      // totalPageKey: 'data.pagination.size',  // 总页数
      totalKey: 'data.pagination.total' // 总记录数
    }
  })

  // 数据表格的数据源
  const dataSource = computed(() => data.value?.data.dataList || [])

  // 分页
  const pagination = computed(() => ({
    hideOnSinglePage: true, // 只有一页时是否隐藏分页器
    total: total.value,
    current: current.value,
    pageSize: pageSize.value,
    showSizeChanger: true,
    // showQuickJumper: true,
    defaultCurrent: 1,
    defaultPageSize: 20, // 默认每页显示数量
    showTotal: (total) => `[共有 ${total} 条数据]`, // 分页中显示总的数据
    // onShowSizeChange: (current, size) => {
    //   console.info('onShowSizeChange....', page, '========', pageSize)
    //   changePagination(current, size)
    // },
    onChange: (page, pageSize) => {
      // console.info('onChange....', page, '========', pageSize)
      // changeCurrent(page)
      changePagination(page, pageSize)
    }
  }))
  // // 搜索
  // const searchForPage = () => {

  //   changePagination(1, 10)
  // }
  return {
    refresh,
    run,
    loading,
    dataSource,
    pagination
  }
}
